'''
Created on 5 dec. 2014

@author: Damien Torond et Geoffrey Sentost
Module Teleporteur
'''

class Teleporteur:
    
    '''
    La classe Teleporteur modelise les teleporteurs qui ammennent les vehicules jusqu'au parking.
    '''

    def __init__(self, id):
        '''
        Constructeur de la classe Teleporteur.
        Attributs
            - fonctionne de type booleen, verifie si le teleporteur fonctionne.
            - id de type int.
            - estLibre de type booleen, modelise si le teleporteur est libre ou non.
        
        '''
        self.fonctionne = True
        self.id = id
        self.estLibre = True
        
    
    
    def teleporterVersPlace(self, voiture, bdd, ecran):
        if self.fonctionne :
                        
            if not voiture.getEstGaree() :
                self.estLibre = False
                ecran.teleportationEnCours()
                voiture.garer()
                bdd.garer(voiture)
                self.estLibre = True
    
    '''
    Methode : modelise le deplacement vers le parking et la place correspondante, en verifiant si
    le teleporteur est libre, on affiche sur l'ecran et on met a jour la base de donnees, le teleporteur
    est a nouveau libre.
    '''
          
    def teleporterVersSortie(self, voiture, bdd, ecran):
        '''
        Methode : modelise le deplacement de la voiture vers la sortie, en verrifiant si le teleporteur est libre, on 
        affiche sur l'ecran et on met a jour la base de donnees, le teleporteur est a nouveau libre.
        '''
        if self.fonctionne :
                        
            if voiture.getEstGaree() :
                self.estLibre = False
                ecran.teleportationEnCours()
                voiture.sortir()
                bdd.sortir(voiture)     
                self.estLibre = True

    
    def getEstLibre(self):
        '''
        Methode : accesseur de l'attribut estLibre qui retourne celui-ci.
        '''
        return self.estLibre
    
    
        